; Music of Turbo Esprit (1986) (Durell Software)
; Ripped by Megachur the 27/02/2009

; Need System Vectors

	write "TURBOESP.BIN"

music_date_rip	equ &1b29
music_adr	equ &733c
first_theme	equ 0
last_theme	equ 0	; 0 -> 0

	read "music_header_v1_0.asm"
;
.play_music
;
	ld iy,l7364
	call l736e
	ld iy,l7369
	call l736e
	ret
	call #bca7
	ld hl,l735a
	ld de,l7364
	ld bc,#000a
	ldir
	ret
.l735a
	dw l746f,#0000,#2701,#0076
.l7369 equ $ + 7
.l7364 equ $ + 2
	dw #0208,l746f,#0000,#2701
	dw #0076,#0208
.l736e
	ld a,(iy+#04)
	ld (l7425),a
	call #bcad
	and #07
	ret z
	ld l,(iy+#00)
	ld h,(iy+#01)
	ld a,(hl)
	cp #ff
	jr z,l7394
	call l73dd
	ld hl,l7425
	call #bcaa
	ld a,#0f
	ld (l742b),a
	ret
.l7394
	ld a,(iy+#03)
	inc a
	ld b,a
	and #07
	cp #07
	ld a,b
	jr nz,l73a5
	ld a,(iy+#03)
	and #08
.l73a5
	ld (iy+#03),a
	add a
	ld de,l73bd
	add e
	ld e,a
	jr nc,l73b1
	inc d
.l73b1
	ld a,(de)
	ld (iy+#00),a
	inc de
	ld a,(de)
	ld (iy+#01),a
	jp l736e
.l73bd
	dw l746f,l748c,l746f,l74a9
	dw l746f,l74d2,l746f,#0000
	dw l7627,l7660,l7627,l76a1
	dw l7627,l76ae,l7627,#0000
.l73dd
	ld l,(iy+#00)
	ld h,(iy+#01)
	ld a,(hl)
	cp #80
	jp z,l742e
	call l73f9
	inc hl
	ld a,(hl)
	call l7412
	inc hl
	ld (iy+#00),l
	ld (iy+#01),h
	ret
.l73f9
	or a
	jr nz,l73ff
	ld (l742b),a
.l73ff
	add a
	ld de,l75e1
	add e
	ld e,a
	jr nc,l7408
	inc d
.l7408
	ld a,(de)
	ld (l7428),a
	inc de
	ld a,(de)
	ld (l7429),a
	ret
.l7412
	add a
	ld de,l75c9
	add e
	ld e,a
	jr nc,l741b
	inc d
.l741b
	ld a,(de)
	ld (l742c),a
	inc de
	ld a,(de)
	ld (l742d),a
	ret
.l742c equ $ + 7
.l742b equ $ + 6
.l7429 equ $ + 4
.l7428 equ $ + 3
.l7425
	db #01,#00,#00,#00,#00,#00,#0f,#00
.l742d
	db #00
.l742e
	inc hl
	ld a,(hl)
	add a
	ld d,#00
	ld e,a
	ld ix,l75af
	add ix,de
	ld l,(ix+#00)
	ld h,(ix+#01)
	ld a,(iy+#02)
	add a
	add l
	ld l,a
	jr nc,l7449
	inc h
.l7449
	ld a,(hl)
	or a
	jp m,l745a
	call l73f9
	inc hl
	ld a,(hl)
	call l7412
	inc (iy+#02)
	ret
.l745a
	xor a
	ld (iy+#02),a
	ld h,(iy+#01)
	ld l,(iy+#00)
	inc hl
	inc hl
	ld (iy+#00),l
	ld (iy+#01),h
	jp l73dd
.l746f
	db #80,#01,#0d,#01,#11,#01,#14,#01
	db #17,#01,#16,#02,#14,#09,#80,#01
	db #14,#01,#19,#01,#14,#01,#16,#01
.l748c equ $ + 5
	db #19,#02,#19,#09,#ff,#80,#02,#0f
	db #02,#14,#02,#0f,#01,#11,#02,#0f
	db #01,#0d,#02,#11,#04,#80,#02,#0f
	db #01,#16,#02,#14,#01,#13,#02,#14
.l74a9 equ $ + 2
	db #08,#ff,#80,#03,#80,#03,#80,#04
	db #80,#04,#10,#01,#1c,#01,#1b,#01
	db #1a,#01,#19,#01,#18,#01,#17,#01
	db #16,#01,#15,#01,#14,#01,#13,#01
	db #12,#01,#11,#01,#10,#01,#0f,#01
.l74d2 equ $ + 3
	db #0e,#01,#ff,#80,#05,#80,#05,#80
	db #06,#80,#06,#1e,#01,#1d,#01,#1c
	db #01,#1b,#01,#1a,#01,#19,#01,#18
	db #01,#17,#01,#16,#01,#15,#01,#14
	db #01,#13,#01,#12,#01,#11,#01,#10
.l74fb equ $ + 4
	db #01,#0f,#01,#ff,#19,#01,#19,#01
	db #14,#02,#17,#02,#16,#01,#14,#02
	db #14,#01,#12,#02,#11,#02,#12,#02
.l7512 equ $ + 3
	db #14,#01,#ff,#11,#01,#11,#01,#11
	db #02,#16,#02,#11,#01,#12,#02,#12
	db #01,#11,#02,#0f,#02,#0d,#02,#0f
.l752b equ $ + 4
	db #01,#0f,#01,#ff,#0d,#01,#0e,#01
	db #0f,#01,#10,#01,#11,#01,#12,#01
	db #13,#01,#19,#01,#14,#01,#19,#01
	db #12,#01,#19,#01,#10,#01,#19,#01
.l754c equ $ + 5
	db #0f,#01,#19,#01,#ff,#10,#01,#11
	db #01,#12,#01,#13,#01,#14,#01,#15
	db #01,#16,#01,#1c,#01,#17,#01,#1c
	db #01,#15,#01,#1c,#01,#14,#01,#1c
.l756d equ $ + 6
	db #01,#12,#01,#1c,#01,#ff,#1c,#01
	db #15,#01,#1b,#01,#15,#01,#19,#01
	db #15,#01,#1b,#01,#1c,#01,#15,#01
	db #1c,#01,#1b,#01,#15,#01,#19,#01
.l758e equ $ + 7
	db #15,#01,#1b,#01,#15,#01,#ff,#1e
	db #01,#13,#01,#1c,#01,#13,#01,#1a
	db #01,#13,#01,#1c,#01,#1e,#01,#13
	db #01,#1e,#01,#1c,#01,#13,#01,#1a
	db #01,#13,#01,#1c,#01,#13,#01,#ff
.l75af
	db #00,#00
	dw l74fb,l7512,l752b,l754c
	dw l756d,l758e,l76bb,l76da
	dw l76f9,l770a,l771b,l772e
.l75c9
	dw #0000
	db #0f,#00,#1e,#00,#2d,#00,#3c,#00
	db #4b,#00,#5a,#00,#69,#00,#78,#00
.l75e1 equ $ + 6
	db #87,#00,#96,#00,#a5,#00,#00,#00
	db #aa,#01,#92,#01,#7b,#01,#66,#01
	db #52,#01,#3f,#01,#2d,#01,#1c,#01
	db #0c,#01,#fd,#00,#ef,#00,#e1,#00
	db #d5,#00,#c9,#00,#be,#00,#b3,#00
	db #a9,#00,#9f,#00,#96,#00,#8e,#00
	db #86,#00,#7f,#00,#77,#00,#71,#00
	db #6a,#00,#64,#00,#5f,#00,#59,#00
	db #54,#00,#50,#00,#4b,#00,#47,#00
	db #43,#00,#3f,#00
.l7627
	db #80,#07,#0d,#01,#05,#01,#08,#01
	db #0d,#01,#0b,#01,#06,#02,#01,#02
	db #0d,#01,#11,#01,#14,#01,#12,#01
	db #11,#01,#0f,#01,#08,#01,#80,#07
	db #11,#01,#0d,#01,#11,#01,#0d,#01
	db #06,#01,#03,#02,#05,#02,#08,#01
	db #12,#01,#11,#02,#08,#01,#01,#02
.l7660 equ $ + 1
	db #ff,#80,#08,#0d,#01,#0d,#01,#0c
	db #01,#08,#01,#0f,#01,#0d,#01,#0c
	db #01,#0d,#02,#08,#01,#05,#01,#08
	db #01,#0a,#01,#05,#01,#09,#01,#05
	db #01,#80,#08,#0d,#01,#03,#01,#0c
	db #01,#07,#01,#03,#01,#05,#01,#0a
	db #01,#03,#01,#08,#01,#08,#02,#08
	db #01,#12,#01,#11,#01,#0f,#01,#08
.l76a1 equ $ + 2
	db #01,#ff,#80,#09,#80,#09,#80,#0a
	db #80,#0a,#00,#08,#00,#08,#ff
.l76ae
	db #80,#0b,#80,#0b,#80,#0c,#80,#0c
.l76bb equ $ + 5
	db #00,#08,#00,#08,#ff,#01,#01,#08
	db #01,#11,#01,#0d,#01,#0f,#01,#0b
	db #01,#0d,#01,#11,#02,#11,#01,#0f
	db #01,#08,#01,#0d,#01,#08,#01,#0f
.l76da equ $ + 4
	db #01,#08,#01,#ff,#0a,#01,#0a,#01
	db #0d,#01,#0a,#01,#0d,#01,#0c,#01
	db #0a,#01,#03,#02,#03,#01,#08,#01
	db #03,#01,#06,#01,#03,#01,#05,#01
.l76f9 equ $ + 3
	db #03,#01,#ff,#01,#02,#01,#02,#01
	db #02,#01,#02,#01,#02,#01,#02,#01
.l770a equ $ + 4
	db #02,#01,#02,#ff,#04,#02,#04,#02
	db #04,#02,#04,#02,#04,#02,#04,#02
.l771b equ $ + 5
	db #04,#02,#04,#02,#ff,#19,#02,#17
	db #02,#15,#02,#17,#01,#19,#02,#19
	db #01,#17,#02,#15,#02,#17,#02,#ff
.l772e
	db #1a,#02,#19,#02,#17,#02,#19,#01
	db #1a,#02,#1a,#01,#19,#02,#17,#02
	db #19,#02,#ff
;
.init_music	; added by Megachur
;
	ld hl,evt_bloc
	ld bc,#8100
	ld de,play_music
	jp #bcd7	; call play_music every CRT interrupt
evt_bloc
	db #00,#00,#00,#00,#00,#00
	db #00,#00,#00
;
.game_name
	db "Turbo Esprit",0
.game_year
	db "1986",0
.game_publisher
	db "Durell Software",0
.music_author
	db "",0
.music_comment
	db "",0

	read "music_end_v1_0.asm"
